package org.mics.sitemsg.service;

import org.mics.core.response.PageDataResponse;
import org.mics.sitemsg.VO.SiteMsgVO;
import org.mics.sitemsg.entity.SiteMsgDO;
import org.mics.sitemsg.query.SiteMsgQuery;

/**
 * 站内信
 * @author mics
 * @date 2021-11-8
 * @version  1.0
 */
public interface SiteMsgService {


	/**
	 * 根据用户id查询用户站内信分页列表
	 * @author mics
	 * @date 2021-11-8
	 * @version  1.0
	 * @param siteMsgQuery
	 * @param userId 用户id 
	 * @return 用户站内信分页列表
	 */
	PageDataResponse<SiteMsgVO> listByPage( SiteMsgQuery siteMsgQuery, String userId);
	
	/**
	 * 保存系统消息（带跳转地址）
	 * @author mics
	 * @date 2022-8-29
	 * @version  1.0
	 * @param title 消息标题
	 * @param content 消息内容
	 * @param receiveUserId 接收用户id
	 * @param jumpUrl 点击消息跳转地址
	 * @return 消息id
	 */
	String save(String title,String content,String receiveUserId,String jumpUrl);
	
	/**
	 * 保存系统消息（不带跳转地址）
	 * @author mics
	 * @date 2022-8-29
	 * @version  1.0
	 * @param title 消息标题
	 * @param content 消息内容
	 * @param receiveUserId 接收用户id
	 * @param jumpUrl 点击消息跳转地址
	 * @return 消息id
	 */
	String save(String title,String content,String receiveUserId);

	/**
	 * 根据站内信id查询站内信
	 * @author mics
	 * @date 2021-11-8
	 * @version  1.0
	 * @param id 站内信id
	 * @return  站内信
	 */
	SiteMsgDO info(String id);

	/**
	 * 根据站内信id删除站内信
	 * @author mics
	 * @date 2021-11-8
	 * @version  1.0
	 * @param id
	 */
	void remove(String id);

	/**
	 * 未读站内信数量
	 * @author mics
	 * @date 2022-8-16
	 * @version  1.0
	 * @param id
	 * @return
	 */
	Long noReadNumber(String userId);

}
